package cn.stylefeng.guns.modular.auth.domain.composite;

import cn.stylefeng.guns.modular.auth.domain.visitor.PriorityNodeVisitor;
import lombok.Data;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 * @author allen
 * @version 1.0
 * @date 2021/4/12 23:51
 */
@Data
public class PriorityNode {
    private Long id;

    /**
     * 权限编号
     */
    private String code;

    /**
     * 权限对应的请求URL
     */
    private String url;

    /**
     * 权限的说明备注
     */
    private String priorityComment;

    /**
     * 权限类型，1：菜单，2：其他
     */
    private Integer priorityType;

    /**
     * 父权限的主键
     */
    private Long parentId;

    /**
     * 权限的创建时间
     */
    private Date gmtCreate;

    /**
     * 权限的修改时间
     */
    private Date gmtModified;


    private List<PriorityNode> children = new ArrayList<>();


    public void accept(PriorityNodeVisitor priorityNodeVisitor) {

        priorityNodeVisitor.visit(this);
    }
}
